// 模块加载机制
// 优先从缓存中加载模块，模块在第一次加载后会被缓存，多次require()也不会导致代码被多次执行
// 内置模块优先级最高，即使有同名的自定义模块也会优先加载内置模块
// 通过 ./ 或 ../ 用来区分自定义模块


// 模块查找规则

// require('./06.findRules/find.js');   
// 如果是完整路径，直接引入

require('./06.findRules/find');
// 如果省略后缀 ，先找同名js文件，再找同名文件夹(find.js -> find.json -> find.node -> 报错)

// 如果找到了同名文件夹 ，会执行其中的index.js
// 如果没有index.js ，就去当前文件夹的package.js文件中查找main选项的入口文件
// 如果指定入口文件未找到，就会报错 


// 既没有路径有没有后缀时
// Nodejs会假设它是系统模块 ，会去node_modules文件夹中找
// 先看是否有该名字的js文件
// 再看是否有该名字的文件夹 ，执行其中的index.js
// 若没有则在文件夹package.json中的main选项确定入口文件